import "@site/src/languages/highlight";

# Path

**描述：**

&emsp;&emsp;进行系统文件路径操作的类。

## getScriptPath

**类型：** 函数。

**描述：**

&emsp;&emsp;从脚本模块名称中获得脚本的文件路径。

**签名：**
```tl
getScriptPath: function(self: Path, moduleName: string): string
```

**用法示例：**
```tl
-- 在名字叫'init'的项目脚本程序入口文件中
local scriptPath = Path:getScriptPath(...)
-- 设置项目文件搜索路径
Content:insertSearchPath(1, scriptPath)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| moduleName | string | 脚本模块的名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 脚本模块的路径。 |

## getExt

**类型：** 函数。

**描述：**

&emsp;&emsp;输入: /a/b/c.TXT 输出: txt

**签名：**
```tl
getExt: function(self: Path, path: string): string
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| path | string | 要处理的文件路径。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 文件扩展名。 |

## getPath

**类型：** 函数。

**描述：**

&emsp;&emsp;输入: /a/b/c.TXT 输出: /a/b

**签名：**
```tl
getPath: function(self: Path, path: string): string
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| path | string | 要处理的文件路径。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 获得的父级文件路径。 |

## getName

**类型：** 函数。

**描述：**

&emsp;&emsp;输入: /a/b/c.TXT 输出: c

**签名：**
```tl
getName: function(self: Path, path: string): string
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| path | string | 要处理的文件路径。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 不包含扩展名的文件名。 |

## getFilename

**类型：** 函数。

**描述：**

&emsp;&emsp;输入: /a/b/c.TXT 输出: c.TXT

**签名：**
```tl
getFilename: function(self: Path, path: string): string
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| path | string | 要处理的文件路径。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 文件名。 |

## getRelative

**类型：** 函数。

**描述：**

&emsp;&emsp;输入: /a/b/c.TXT, /a 输出: b/c.TXT

**签名：**
```tl
getRelative: function(self: Path, path: string, base: string): string
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| path | string | 要处理的文件路径。 |
| base | string | 要取得相对路径的基础文件路径。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 相对文件路径。 |

## replaceExt

**类型：** 函数。

**描述：**

&emsp;&emsp;输入: /a/b/c.TXT, lua 输出: /a/b/c.lua

**签名：**
```tl
replaceExt: function(self: Path, path: string, newExt: string): string
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| path | string | 要处理的文件路径。 |
| newExt | string | 要替换的新文件扩展名。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 处理后的文件路径。 |

## replaceFilename

**类型：** 函数。

**描述：**

&emsp;&emsp;输入: /a/b/c.TXT, d 输出: /a/b/d.TXT

**签名：**
```tl
replaceFilename: function(self: Path, path: string, newFile: string): string
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| path | string | 要处理的文件路径。 |
| newFile | string | 要替换的新文件名。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 处理后的文件路径。 |

## __call

**类型：** 元方法。

**描述：**

&emsp;&emsp;输入: a, b, c.TXT 输出: a/b/c.TXT

**签名：**
```tl
metamethod __call: function(self: Path, ...: string): string
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| ... | string | 要拼接成新文件路径的文件名分段。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| string | 新的文件路径。 |